1. Field of the Invention
The invention relates to internal computer communications, and more particularly to bridge devices in multicontroller computer applications.
2. Description of the Related Art
Bridge devices, such as a PCI-to-PCI (peripheral component interconnect) bridge, have traditionally allowed only flow or pass through functionality with respect to communications from one bus interface to another bus interface. Transactions between different bus interfaces, therefore, have been restrictive requiring the different interfaces to have similar if not exact defined address spaces. Alternatively, differences in address spaces have resulted in operation intensive address conflict resolution algorithms. Conflicts are further acerbated in multi-interface applications where one of the multiple interfaces is a memory interface. Specifically multi-conflict resolution has been required between a first and second interface to a memory interface.
One approach has been to configure address spaces to intersect at portions of address space where it can be estimated high traffic between communicating devices will occur. In addition, bridge devices have been configured to translate an incoming address from one known address space to a different but known second address space. However, this translation has been restricted to only predefined translations without runtime flexibility.
Dynamic address translation among multiple computer bus interfaces is provided through a number of configuration registers. A translation window is established at an initiating or host bus interface using a first set of configuration registers. A base register is programmed to indicate the beginning address of the translation window. Another corresponding register is programmed to set the size of the translation window extending from the beginning address. A transaction occurring on the initiating bus side that falls within the translation window is first claimed by the translation device. If translation is enabled, the translation device distinguishes the portion of the initiating transaction that defines the contents of the information within the translation window and passes that information without translation. The remaining portion of the transaction is translated into a different region at the receiving or local bus interface. The configuration registers may be dynamically remapped during runtime by any communicating master device to translate from a region at one bus interface to a different region at another bus interface.